Storage systems such as distributed storage systems perform mirroring through which replicated data is arranged in a distributed manner in a plurality of storage apparatuses (storage nodes), thereby ensuring availability and reliability of data.
In a client/server type distributed storage system, a proxy server receives a request from a client and forwards the request to a storage apparatus. For example, upon receipt of a write request, the proxy server forwards the write request to all the storage apparatuses. Upon receipt of a read request, the proxy server forwards the read request to any one of the storage apparatuses.
A storage apparatus usually includes a plurality of hard disk drives (HDDs). The write performance decreases if read access to an HDD occurs during write access to the HDD. To address this, a storage apparatus includes a cache memory. The storage apparatus reads data from the cache memory if read access results in a cache hit, whereas the storage apparatus reads data from an HDD if read access results in a cache miss.
Also, a disk array subsystem is known, in which a disk drive to be accessed is selected in the order of priority among disk drives in which data has been mirrored.
A related technique is disclosed in, for example, Japanese Laid-open Patent Publication No. 10-293658.
However, cache memories are expensive. Therefore, a high-cost storage system would be generated if the write performance is improved depending merely on cache memories. Also, there are not necessarily significant differences in the order of preference among disk drives in which data has been mirrored, and therefore control over degradation in the write performance is sometimes limited.